package cn.tedu.bece.front.common.config;

import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * Sa-Token 配置类
 */
@Configuration
public class SaTokenConfig {

    /**
     * 注册 Sa-Token 权限数据加载源实现
     * 在使用权限校验 API 之前，必须实现此接口，告诉框架哪些用户拥有哪些权限。
     */
    @Bean
    @SuppressWarnings("unchecked")
    public StpInterface stpInterfaceImpl() {
        return new StpInterface() {
            @Override
            public List<String> getPermissionList(Object loginId, String loginType) {
                // 需在登录成功后，把权限列表 perms 放入 Session
                return (List<String>) StpUtil.getSession().get("perms");
            }

            @Override
            public List<String> getRoleList(Object loginId, String loginType) {
                // 需在登录成功后，把角色列表 roles 放入 Session
                return (List<String>) StpUtil.getSession().get("roles");
            }
        };
    }

}
